The present invention relates generally to the field of computer networks, and in particular to a general computer network controller and a method for local and remote asynchronous completion control in a system area network.
Most existing high-performance network controllers have to be managed by the operating system or by kernel agents in order to guarantee protected accesses across different nodes. Users have to do system calls to remote memory through high latency programming interfaces. In addition, explicit synchronization and completion control decreases the sustained bandwidth between users. These problems are described in “An Implementation and Analysis of the Virtual Interface Architecture”, http://www.berkeley.edu/˜philipb/via/sc98/paper/index.htm.
Communication between network controllers in a system area network (SAN) is handled by switching fabrics and point-to-point links. Among the situations which create network congestion are, i) a failured network component, ii) a high-performance node sending packets into a low-performance node, iii) several nodes sending data packets to one particular node (thus creating a hot-node). If such a congestion problem is not handled property, network throughput will be reduced.
U.S. Pat. No. 5,613,071 (Rankin et al.) discloses a method and an apparatus for providing remote memory access in a distributed memory multi-processor system.
Further, U.S. Pat. No. 5,915,088 (Basavaiah et al.) discloses a multi-processor system that is configured so that each CPU of the system has access to at least portions of the memory of any other CPU.
These two patents describe a more general way of doing RMA with address mapping which has been available for some time. They do not refer to any implementation issues or method of optimization.
Particularly in a SAN network, it is important to find a method of scheduling packets based on e.g. priorities, control messages, data messages, and to avoid congestion. Also, when managing virtual channels (virtual channels are described more fully in co-pending U.S. patent application Ser. No. 09/520,063, entitled “Virtual channel flow control”, assigned to the assignee of the present application, the relevant disclosures of which co-pending application are incorporated herein by reference), a solution must be found regarding the problem of providing a method of reacting to the flow control information provided by the SAN layer.
Generally, a network controller forwards packets to the attached bus as they arrive from the network. That is, the bus to which the network controller is attached, may not necessarily be utilized to its optimum. This leads to a possible problem of decreased bandwidth.